Technical Q&A QA1280
Exception in JFileChooser.setAcceptAllFileFilterUsed


Q: Mac OS X 10.2 で Java 1.4.1 Update 1 をインストールしたら、JFileChooser.setAcceptAllFileFilterUsed を呼び出すたびにアプリケーションが ArrayIndexOutOfBoundsException を返します。何がいけないのでしょうか。

A: これは Jaguar システムに対する 1.4.1 Update 1 で発生した既知の問題です。この問題は、JFileChooser がすでに addChoosableFileFilter または setFileFilter に対する呼び出しを受け取っている場合に発生します。setAcceptAllFileFilterUsed を呼び出してから JFileChooser でほかのステート管理を行えば、この問題の発生を回避できます。この対処法は、どのような環境においても実践できます。

アプリケーションの中には、単一の JFileChooser を再利用し、実行時の状況に応じて setAcceptAllFileFilterUsed を動的に呼び出すものがあります。そのような場合、この問題に対処するためには、「Accept All」および「Don't Accept All」のシナリオごとに別々の JFileChooser を作成する必要があります。


[2003 年 10 月 7 日]